import request from '@/utils/request'

/**
 * 文件上传相关 API
 */

/**
 * 上传用户头像
 * @param {File} file - 头像文件
 * @returns {Promise<Object>} 上传结果
 */
export const uploadAvatar = (file) => {
  const formData = new FormData()
  formData.append('file', file)
  return request.upload('/api/upload/avatar', formData)
}

/**
 * 上传通用图片
 * @param {File} file - 图片文件
 * @param {Object} options - 可选参数
 * @param {string} options.usage_type - 用途类型 (avatar/article/checkin/comment/other)
 * @returns {Promise<Object>} 上传结果
 */
export const uploadImage = (file, options = {}) => {
  const formData = new FormData()
  formData.append('file', file)

  if (options.usage_type) {
    formData.append('usage_type', options.usage_type)
  }

  return request.upload('/api/upload/image', formData)
}

/**
 * 获取用户上传的图片列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.page_size - 每页数量
 * @param {number} params.usage_type - 用途类型筛选 (1-其他, 2-头像, 3-文章配图, 4-打卡图片, 5-评论图片)
 * @returns {Promise<Object>} 图片列表
 */
export const getImageList = (params = {}) => {
  return request.get('/api/upload/images', params)
}

/**
 * 获取图片详情
 * @param {number} imageId - 图片ID
 * @returns {Promise<Object>} 图片详情
 */
export const getImageDetail = (imageId) => {
  return request.get(`/api/upload/images/${imageId}`)
}

/**
 * 删除图片
 * @param {number} imageId - 图片ID
 * @returns {Promise<Object>} 删除结果
 */
export const deleteImage = (imageId) => {
  return request.delete(`/api/upload/images/${imageId}`)
}
